home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d27
/
pgmmenu.arc
/
CRC1230.CLP
next >
Wrap
Text File
|
1991-12-04
|
52KB
|
1,221 lines
CRC1230: PGM PARM(&USROPT &XSRCFILE &XSRCLIB &XOBJLIB +
&XJOBD &XLOG &SIGNOFF &LOGCLPGM &ALWRTVSRC +
&USRPRF &PUBAUT &RSTDSP &DFRWRT &SIZE +
&MAXRCD &PRTSCH &IN71 &RSTLBL &MBRLST +
&DFTYPE &SHARE &OPTIMIZE)
/* Program - CRC1230 */
/* CRC - Programmer Menu */
/* Compile this version with: */
/* DFRWRT(*NO) RSTDSP(*YES) */
COPYRIGHT: DCL VAR(©RIGHT) TYPE(*CHAR) LEN(64) +
VALUE('(c) Copyright 1986 by CRC, Inc. +
All rights reserved.')
DCL &PGMNAM *CHAR 10 VALUE('CRC1230')
DCL &USROPT *CHAR 20 /* User defaults option */
DCL &BLINK *CHAR 04 /* Blinking cursor */
DCL &USER *CHAR 10 /* User ID */
DCL &JOBTYPE *CHAR 01 /* Job type */
DCL &SRCDFT *LGL 1 /* Source default used */
DCL &SRCSAVE *CHAR 10 /* Saved source file */
DCL &MNUDFT *CHAR 2000 /* User defaults */
DCL &GENOPT *CHAR 64 /* Gen Options */
DCL &BLANKS *CHAR 10 /* Constant of blanks */
DCL &BLANK *CHAR 01 /* Constant of a blank */
DCL &JOBNAME *CHAR 10 /* Submitted job name */
DCL &WSID *CHAR 10 /* Job name (Workstn-ID) */
DCL &LENGTH *DEC (15 5)
DCL &OFFSET1 *DEC 3
DCL &OFFSET2 *DEC 3
DCL &CMD *CHAR 512 /* Command to execute */
DCL &DSP *CHAR 01 /* Re-displayed menu Sws */
DCL &OBJTYPE *CHAR 08 /* Object type */
DCL &P04 *LGL 01 VALUE('0')
DCL &P16 *LGL 01 VALUE('0')
DCL &ON *LGL VALUE('1')
DCL &OFF *LGL VALUE('0')
/* Display attributes */
DCL &X26 *CHAR 01 VALUE(X'26') /* UL HI */
DCL &X24 *CHAR 01 VALUE(X'24') /* UL */
DCL &X22 *CHAR 01 VALUE(X'22') /* HI */
DCL &X20 *CHAR 01 VALUE(X'20') /* Term */
DCL &LIBL *CHAR 275 /* Job's library list */
DCL &SAVLIBL *CHAR 275 /* Original library list */
DCL &SIZE *CHAR 21 /* File size default */
DCL &SRCTYPE *CHAR 05 /* Type: ____ entry */
DCL &PROMPT *CHAR 04 /* Prompt flag */
DCL &XJOBD *CHAR 20 /* JodD/JobD-library */
DCL &CNT *DEC 05 /* Work counter variable */
DCL &CNT1 *DEC 05 /* Work counter variable */
DCL &CNT2 *DEC 05 /* Work counter variable */
DCL &CNT3 *DEC 05 /* Work counter variable */
/* Work variables for finding the OBJECT.LIBRARY +
name in a prompted CRTxxx command. */
DCL &TWICE *LGL 1
DCL &NOLIB *LGL 1
DCL &OBJNAME *CHAR 10
DCL &LIBNAME *CHAR 10
DCL &WORKOBJ *CHAR 12
/* Message variables */
DCL &MSGKEY *CHAR 04
DCL &MSGID *CHAR 07
DCL &SECLVL *CHAR 256
DCL &MSGLEN *DEC 05
DCL &MSGDTA *CHAR 132
DCL &SENDER *CHAR 80
DCL &RTNTYPE *CHAR 2
DCLF FILE(CRC1230)
MONMSG MSGID(CPF0000 MCH0000 EDT0000) +
EXEC(GOTO ERROR)
CHGVAR VAR(©RIGHT) VALUE(©RIGHT)
CHGVAR VAR(&PGMSGQ) VALUE(&PGMNAM) /* Pgm MsgQ */
RTVJOBA JOB(&WSID) USER(&USER) TYPE(&JOBTYPE) +
USRLIBL(&SAVLIBL)
IF (&JOBTYPE *EQ '0') DO /* Batch Job. */
SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) MSGDTA('0000' +
*CAT 'PGMMENU can execute only from an +
interactive environment. Request +
cancelled.') MSGTYPE(*DIAG)
RETURN
ENDDO
/* Retrieve the system name */
RTVSYSINF TYPE(*SYSNAM) RTNVAR(&SYSNAM)
IF (%SST(&USROPT 1 10) *EQ *CURRENT) DO
CHGVAR VAR(&USROPT) VALUE(&USER *CAT '*LIBL')
GOTO GETDFT
ENDDO
IF (&USROPT *EQ *DFT) DO
/* If USROPT(*DFT), then use dataarea in QGPL */
CHGVAR VAR(&USROPT) VALUE('PGMMENU QGPL ')
GOTO GETDFT
ENDDO
IF (&USROPT *EQ *NONE) DO
CHGVAR VAR(&SIZE1) VALUE(%SST(&SIZE 03 8))
CHGVAR VAR(&SIZE2) VALUE(%SST(&SIZE 11 5))
CHGVAR VAR(&SIZE3) VALUE(%SST(&SIZE 16 6))
CHGVAR VAR(&JOBD) VALUE(%SST(&XJOBD 01 10))
CHGVAR VAR(&JOBDLIB) VALUE(%SST(&XJOBD 11 10))
CHGVAR VAR(&LOG) VALUE(&XLOG)
ENDDO
ELSE GOTO GETDFT /* return to here when done */
SNDRQSMSG: SNDPGMMSG MSG('CRC - COZZI UTILITIES') TOPGMQ(*SAME) +
MSGTYPE(*RQS) KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
SNDPGMMSG MSG(©RIGHT) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
SNDPGMMSG MSG('CRC - Programmer Menu started') +
TOPGMQ(*SAME) MSGTYPE(*RQS) KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
SETDFT: CHGVAR VAR(&SRCLIB) VALUE(&XSRCLIB)
CHGVAR VAR(&OBJLIB) VALUE(&XOBJLIB)
IF (&JOBDLIB *EQ &BLANKS) DO
CHGVAR VAR(&JOBDLIB) VALUE('*LIBL')
ENDDO
CHGVAR VAR(&LOG) VALUE(&XLOG)
IF (&SRCFILE *EQ &BLANKS) DO
CHGVAR VAR(&SRCFILE) VALUE(&XSRCFILE)
ENDDO
ROLL: IF (&IN26) DO /* ROLL UP */
SNDF RCDFMT(OPTMNU2)
CHGVAR VAR(&DSP) VALUE('2')
ENDDO
ELSE DO /* ROLL DOWN */
SNDF RCDFMT(OPTMNU1)
CHGVAR VAR(&DSP) VALUE('1')
ENDDO
HEADING: SNDF RCDFMT(HEADING1) /* Write Disply heading 1 */
SNDF RCDFMT(HEADING2) /* Write Disply heading 2 */
MENU:
IF (*NOT &IN83) DO
CHGVAR VAR(&OPTION) VALUE(0)
ENDDO
IF ((&XSRCFILE *EQ &BLANKS) *AND (&SRCDFT)) +
DO
CHGVAR VAR(&SRCDFT) VALUE('0')
CHGVAR VAR(&SRCFILE) VALUE(&BLANKS)
ENDDO
MSGCTL: SNDF RCDFMT(MSGCTL) /* Program messages */
IF (&LOG *EQ '*NO') DO
RMVMSG MSGKEY(&MSGKEY)
MONMSG MSGID(CPF0000)
ENDDO
SNDRCVF: SNDRCVF RCDFMT(PGMMENU) /* Menu control record */
IF ((&OPTION *EQ 0) *AND (*NOT &IN91)) +
GOTO SNDRCVF
IF ((&OPTION *EQ 3) *AND (&IN83) *AND +
(*NOT &IN92)) DO
CHGVAR VAR(&IN83) VALUE(&OFF)
GOTO CHECKCRT
ENDDO
CHGVAR VAR(&CMD) VALUE(&BLANKS) /* Inz work var. */
IF COND(&OPTION *GT 0) THEN(GOTO CMDLBL(OPTIONS))
/* Determine if roll keys are pressed. */
IF (&DSP *EQ '1') DO
RCVF1: RCVF RCDFMT(OPTMNU1)
MONMSG MSGID(CPF0000)
ENDDO
ELSE IF (&DSP *EQ '2') DO
RCVF2: RCVF RCDFMT(OPTMNU2)
MONMSG MSGID(CPF0000)
ENDDO
/* IF RollUp or RollDown, then +
branch to ROLL: SNDF for new display. */
IF (&IN26 *OR &IN27) GOTO ROLL
CHGVAR VAR(&CNT) VALUE(0) /* Reset counter */
CMD24: IF (&IN24) DO /* Display/Change */
SNDRCVF RCDFMT(PGMDFT1) /* session defaults. */
SNDRCVF RCDFMT(PGMDFT2) /* session defaults. */
GOTO SETDFT
ENDDO
/* Do HelpText routine. */
HELP: IF (&IN30) GOTO HELPTEXT
CMD1: IF (&IN01) DO
IF (&RSTLBL *EQ *YES) DO
CHGVAR VAR(&CMD) VALUE('RPLLIBL (' *CAT &SAVLIBL +
*TCAT ')')
CALL QCAEXEC PARM(&CMD 512)
ENDDO
RETURN
ENDDO
CMD6: IF (&IN06) DO
DSPMSG
GOTO MENU
ENDDO
CMD3: IF (&IN03) +
DO
CMDENTRY: RCVMSG PGMQ(*EXT) MSGTYPE(*RQS) RMV(*NO) +
KEYVAR(&MSGKEY) MSG(&CMD) MSGLEN(&MSGLEN) +
RTNTYPE(&RTNTYPE)
MONMSG MSGID(CPF2415) EXEC(DO)
RCVMSG MSGTYPE(*EXCP)
CHGVAR VAR(&CMD) VALUE(&BLANKS)
GOTO MENU
ENDDO
IF (&CMD *EQ &BLANKS) GOTO CMDENTRY
IF (%SST(&CMD 01 01) *EQ &BLANK) DO
CHGVAR VAR(&CNT) VALUE(1)
BLANKLOOP: CHGVAR VAR(&CNT) VALUE(&CNT + 1)
IF (&CNT *LT 512) DO
IF (%SST(&CMD &CNT 01) *EQ &BLANK) GOTO BLANKLOOP
CHGVAR VAR(&CNT2) VALUE(512 - &CNT + 1)
CHGVAR VAR(&CMD) VALUE(%SST(&CMD &CNT &CNT2))
ENDDO
ENDDO
IF (%SST(&CMD 01 01) *EQ '?') DO
CHGVAR VAR(&RTNTYPE) VALUE('10')
CHGVAR VAR(%SST(&CMD 01 01)) VALUE(' ')
ENDDO
IF (&RTNTYPE *EQ '10') DO /* Prompter? */
IF (*NOT (%SST(&CMD 01 01) *EQ '?')) DO
CHGVAR VAR(&CMD) VALUE('?' *BCAT &CMD)
ENDDO
CALL QCACHECK PARM(&CMD 512)
MONMSG MSGID(CPF0000) EXEC(DO)
GOTO CMDENTRY
ENDDO
RMVMSG MSGKEY(&MSGKEY)
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS)
ENDDO
CALL QCAEXEC PARM(&CMD 512)
MONMSG MSGID(CPF0000)
GOTO CMDENTRY
ENDDO
CMD12: IF (&IN12) DO /* Replace library list. */
SNDPGMMSG MSG('Option CMD12: Replace library list.') +
TOPGMQ(*SAME) MSGTYPE(*RQS) KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
IF (&OPTION *NE 0) DO
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Command +
key not valid with selected option.') +
TOPGMQ(*SAME) MSGTYPE(*DIAG)
GOTO ERROR
ENDDO
RTVJOBA USRLIBL(&LIBL)
CHGVAR VAR(&CMD) +
VALUE('? RPLLIBL (' *CAT &LIBL *TCAT ')')
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
CALL QCACHECK PARM(&CMD 512)
RMVMSG MSGKEY(&MSGKEY)
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
CALL QCAEXEC PARM(&CMD 512)
GOTO ERROR
ENDDO
CMD18: IF (&IN18) DO /* Reset defaults */
IF (%SST(&USROPT 01 10) *EQ '*NONE') DO
SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) MSGDTA('0000' +
*CAT 'USROPT(*NONE) specified on PGMMENU +
command. Cannot revert to user defaults.') +
TOPGMQ(*SAME) MSGTYPE(*DIAG)
GOTO MENU
ENDDO
ELSE GOTO GETDFT /* Get user defaults */
ENDDO
CMD20: IF (&IN20) DO /* Toggle blinking cursor */
IF (&IN71) CHGVAR VAR(&IN71) VALUE('0')
ELSE CHGVAR VAR(&IN71) VALUE('1')
GOTO MENU
ENDDO
OPTIONS: /* Menu Options selection starts here */
IF (&OPTION *EQ 0) DO /* If no option, then */
GOTO SNDRCVF /* go redisplay menu */
ENDDO
IF ((&IN04) *AND ((&OPTION *NE 3) *AND +
(&OPTION *NE 5) *AND (&OPTION *NE 6) *AND +
(&OPTION *NE 7) *AND (&OPTION *NE 11))) +
Then(DO) /* Invalid prompting request */
CHGVAR VAR(&IN81) VALUE('1') /* Not valid option */
SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) MSGDTA('0000' +
*CAT 'CMD 4 pressed, but, option 3, 5, 6, +
7, 11 or 90 not selected.') TOPGMQ(*SAME) +
MSGTYPE(*DIAG)
GOTO ERROR
ENDDO
/* Insert menu defaults */
IF (&SRCLIB *EQ &BLANKS) +
CHGVAR VAR(&SRCLIB) VALUE(&XSRCLIB)
IF (&OBJLIB *EQ &BLANKS) +
CHGVAR VAR(&OBJLIB) VALUE(&XOBJLIB)
IF (&JOBD *EQ &BLANKS) +
CHGVAR VAR(&JOBD) VALUE(&XJOBD)
IF (&LOG *EQ &BLANKS) +
CHGVAR VAR(&LOG) VALUE(&XLOG)
IF (&SRCFILE *EQ &BLANKS) DO
CHGVAR VAR(&SRCFILE) VALUE(&XSRCFILE)
ENDDO
/* IF default srcfile then +
build default source file name. */
IF (&SRCFILE *EQ &BLANKS) +
DO
/* Build default source file name. */
CHGVAR VAR(&SRCDFT) VALUE('1')
IF (&TYPE *EQ &BLANKS) CHGVAR VAR(&SRCFILE) +
VALUE('QTXTSRC')
ELSE IF (&TYPE *EQ 'CLP') CHGVAR VAR(&SRCFILE) +
VALUE('QCLSRC')
ELSE IF (&TYPE *EQ 'DFU' *OR &TYPE *EQ 'QRY') +
CHGVAR VAR(&SRCFILE) VALUE('QIDUSRC')
ELSE IF (&TYPE *EQ BASP) CHGVAR VAR(&SRCFILE) +
VALUE('QBASSRC')
ELSE IF (&TYPE *EQ RPT) CHGVAR VAR(&SRCFILE) +
VALUE('QRPGSRC')
ELSE IF ((&TYPE *EQ BSCF) +
*OR (&TYPE *EQ CMNF) +
*OR (&TYPE *EQ DSPF) +
*OR (&TYPE *EQ LF) +
*OR (&TYPE *EQ MXDF) +
*OR (&TYPE *EQ PF) +
*OR (&TYPE *EQ PRTF)) +
CHGVAR VAR(&SRCFILE) VALUE('QDDSSRC')
ELSE CHGVAR VAR(&SRCFILE) VALUE('Q' *CAT &TYPE *TCAT 'SRC')
ENDDO
CLRPGMQ: SNDPGMMSG MSG('CRC - COZZI UTILITIES') TOPGMQ(*SAME) +
MSGTYPE(*RQS) KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
SNDF RCDFMT(MSGCTL) /* Program messages */
RMVMSG MSGKEY(&MSGKEY) CLEAR(*BYKEY)
/* This code was added to +
improve response time. */
IF (&OPTION *EQ 1) GOTO OPTION1
IF (&OPTION *EQ 2) GOTO OPTION2
IF (&OPTION *EQ 3) GOTO OPTION3
IF (&OPTION *EQ 4) GOTO OPTION4
IF (&OPTION *EQ 5) GOTO OPTION5
IF (&OPTION *EQ 6) GOTO OPTION6
IF (&OPTION *EQ 7) GOTO OPTION7
IF (&OPTION *EQ 8) GOTO OPTION8
IF (&OPTION *EQ 9) GOTO OPTION9
IF (&OPTION *EQ 80) GOTO OPTION80
IF (&OPTION *EQ 90) GOTO OPTION90
IF (&OPTION *EQ 11) GOTO OPTION11
IF (&OPTION *EQ 12) GOTO OPTION12
IF (&OPTION *EQ 13) GOTO OPTION13
IF (&OPTION *EQ 14) GOTO OPTION14
IF (&OPTION *EQ 15) GOTO OPTION15
IF (&OPTION *EQ 16) GOTO OPTION16
IF (&OPTION *EQ 17) GOTO OPTION17
IF (&OPTION *EQ 18) GOTO OPTION18
IF (&OPTION *EQ 19) GOTO OPTION19
IF (&OPTION *EQ 20) GOTO OPTION20
GOTO ERROR
/* Menu selection starts here */
OPTION1: IF (&OPTION *EQ 1) +
DO /* Design/Execute DFU Application */
IF (&PARM *EQ &BLANKS) CHGVAR VAR(&PARM) +
VALUE('*PRV')
IF (&PARM2 *EQ &BLANKS) CHGVAR VAR(&PARM2) +
VALUE('*SELECT')
CHGVAR VAR(&CMD) VALUE('DSNDFUAPP APP(' *CAT &PARM +
*TCAT '.' *CAT &OBJLIB *TCAT ') OPTION(' +
*CAT &PARM2 *TCAT ')')
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
CALL QCACHECK PARM(&CMD 512)
MONMSG MSGID(CPF0006) EXEC(DO)
RCVMSG RMV(*YES)
GOTO ERROR
ENDDO
CALL QCAEXEC PARM(&CMD 512)
GOTO ERROR
ENDDO
OPTION2: IF (&OPTION *EQ 2) +
DO /* Design/Execute QRY Application */
IF (&PARM *EQ &BLANKS) CHGVAR VAR(&PARM) +
VALUE('*PRV')
IF (&PARM2 *EQ &BLANKS) CHGVAR VAR(&PARM2) +
VALUE('*SELECT')
CHGVAR VAR(&CMD) VALUE('DSNQRYAPP APP(' *CAT &PARM +
*TCAT '.' *CAT &OBJLIB *TCAT ') OPTION(' +
*CAT &PARM2 *TCAT ')')
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
CALL QCACHECK PARM(&CMD 512)
MONMSG MSGID(CPF0006) EXEC(DO)
RCVMSG RMV(*YES)
GOTO ERROR
ENDDO
CALL QCAEXEC PARM(&CMD 512)
GOTO ERROR
ENDDO
OPTION3: IF (&OPTION *EQ 3) +
DO /* Create an object */
CHGVAR VAR(&CMD) VALUE('Option 3: CrtObj - ' *CAT +
&PARM *TCAT '.' *TCAT &OBJLIB *BCAT +
'Srcfile - ' *CAT &SRCFILE *TCAT '.' *CAT +
&SRCLIB *BCAT 'Type - ' *CAT &TYPE)
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
IF (&PARM *EQ &BLANKS) DO
SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) MSGDTA('0000' +
*CAT 'Program name is blank. When option 3 +
is selected, a program name is required.') +
TOPGMQ(*SAME) MSGTYPE(*DIAG)
GOTO ERROR
ENDDO
IF ((&TYPE *EQ 'BASP') +
*OR (&TYPE *EQ 'CLP') +
*OR (&TYPE *EQ 'QRY') +
*OR (&TYPE *EQ 'DFU') +
*OR (&TYPE *EQ 'CBL') +
*OR (&TYPE *EQ 'RPG') +
*OR (&TYPE *EQ 'RPT') +
*OR (&TYPE *EQ 'PL1') +
*OR (&TYPE *EQ 'ASM')) +
Then(CHGVAR VAR(&OBJTYPE) VALUE('*PGM'))
ELSE IF ((&TYPE *EQ 'BSCF') +
*OR (&TYPE *EQ 'CMNF') +
*OR (&TYPE *EQ 'DSPF') +
*OR (&TYPE *EQ 'PF') +
*OR (&TYPE *EQ 'LF') +
*OR (&TYPE *EQ 'MXDF') +
*OR (&TYPE *EQ 'PRTF')) +
Then(CHGVAR VAR(&OBJTYPE) VALUE('*FILE '))
ELSE CHGVAR VAR(&OBJTYPE) VALUE('*' *CAT &TYPE)
IF (&OPTIMIZE *EQ '*YES') DO
CHGVAR VAR(%SST(&GENOPT 01 11)) VALUE('*OPTIMIZE ')
ENDDO
ELSE DO
CHGVAR VAR(%SST(&GENOPT 01 11)) VALUE('*NOOPTIMIZE')
ENDDO
/* Build the create object command string */
IF (&TYPE *EQ CMD) DO
RTVMSG MSGID(PGM0001) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &PARM2 *CAT &SRCFILE *CAT +
&SRCLIB *CAT &PUBAUT *CAT &TEXT) MSG(&CMD) +
/* Command */
GOTO CHECKCRT
ENDDO
IF (&TYPE *EQ CLP) DO
RTVMSG MSGID(PGM0002) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &USRPRF *CAT &LOGCLPGM *CAT &ALWRTVSRC +
*CAT &PUBAUT *CAT &TEXT) MSG(&CMD) /* +
Control language program */
GOTO CHECKCRT
ENDDO
IF (&TYPE *EQ CMNF) DO
RTVMSG MSGID(PGM0003) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &PUBAUT *CAT &TEXT) MSG(&CMD) /* +
Communications file */
GOTO CHECKCRT
ENDDO
IF (&TYPE *EQ DFU) DO
RTVMSG MSGID(PGM0004) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &USRPRF *CAT &PUBAUT *CAT &TEXT) +
MSG(&CMD) /* DFU application */
GOTO CHECKCRT
ENDDO
IF (&TYPE *EQ QRY) DO
RTVMSG MSGID(PGM0005) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &USRPRF *CAT &PUBAUT *CAT &TEXT) +
MSG(&CMD) /* Query application */
GOTO CHECKCRT
ENDDO
IF (&TYPE *EQ DSPF) DO
RTVMSG MSGID(PGM0006) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &RSTDSP *CAT &DFRWRT *CAT &PUBAUT +
*CAT &TEXT) MSG(&CMD) /* Display file */
GOTO CHECKCRT
ENDDO
IF (&TYPE *EQ LF) DO
RTVMSG MSGID(PGM0007) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &PUBAUT *CAT &TEXT) MSG(&CMD) /* +
Logical file */
GOTO CHECKCRT
ENDDO
IF (&TYPE *EQ MXDF) DO
RTVMSG MSGID(PGM0008) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &PUBAUT *CAT &TEXT) MSG(&CMD) /* Mixed +
file */
GOTO CHECKCRT
ENDDO
IF (&TYPE *EQ PF) DO
RTVMSG MSGID(PGM0009) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &SIZE1 *CAT &SIZE2 *CAT &SIZE3 *CAT +
&PUBAUT *CAT &TEXT) MSG(&CMD) /* Physical +
file */
GOTO CHECKCRT
ENDDO
IF (&TYPE *EQ PRTF) DO
RTVMSG MSGID(PGM0010) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &MAXRCD *CAT &PRTSCH *CAT +
&PUBAUT *CAT &TEXT) MSG(&CMD) /* Printer +
file */
GOTO CHECKCRT
ENDDO
IF (&TYPE *EQ RPT) DO
RTVMSG MSGID(PGM0011) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &USRPRF *CAT &PUBAUT *CAT &TEXT) +
MSG(&CMD) /* RPGIII auto report program */
GOTO CHECKCRT
ENDDO
IF (&TYPE *EQ RPG) DO
RTVMSG MSGID(PGM0012) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &GENOPT *CAT &USRPRF *CAT &PUBAUT *CAT +
&TEXT) MSG(&CMD) /* RPGIII program */
GOTO CHECKCRT
ENDDO
IF (&TYPE *EQ CBL) DO
RTVMSG MSGID(PGM0013) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &USRPRF *CAT &PUBAUT *CAT &TEXT) +
MSG(&CMD) /* COBOL program */
GOTO CHECKCRT
ENDDO
IF ((&TYPE *EQ PL1) *OR (&TYPE *EQ PLI)) DO
RTVMSG MSGID(PGM0014) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &USRPRF *CAT &PUBAUT *CAT &TEXT) +
MSG(&CMD) /* PL/1 program */
GOTO CHECKCRT
ENDDO
IF (&TYPE *EQ ASM) DO
RTVMSG MSGID(PGM0015) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &USRPRF *CAT &PUBAUT *CAT &TEXT) +
MSG(&CMD) /* ASM (MI) program */
GOTO CHECKCRT
ENDDO
IF (&TYPE *EQ BASP) DO
RTVMSG MSGID(PGM0016) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &USRPRF *CAT &PUBAUT *CAT &TEXT) +
MSG(&CMD) /* BASIC program */
GOTO CHECKCRT
ENDDO
IF (&TYPE *EQ BSCF) DO
RTVMSG MSGID(PGM0017) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &OBJLIB *CAT &SRCFILE *CAT &SRCLIB +
*CAT &PUBAUT *CAT &TEXT) MSG(&CMD) /* +
Bysinc file */
GOTO CHECKCRT
ENDDO
BADTYPE: /* If Type: ____ not found, then cancel CRTxxx */
SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) MSGDTA('0000' +
*CAT 'Type:' *CAT &X26 *CAT &TYPE *CAT &X22 +
*CAT 'not valid for create object.') +
TOPGMQ(*SAME) MSGTYPE(*DIAG)
GOTO ERROR
CHECKCRT: IF (&IN23) DO /* Delete Obj & Prompt CRTxxx */
CHGVAR VAR(&IN04) VALUE('1') /* Prompter */
CHGVAR VAR(&IN11) VALUE('1') /* Delete object */
CHGVAR VAR(&IN23) VALUE('0')
ENDDO
IF (&IN16) CHGVAR VAR(&IN04) VALUE(&ON)
IF (&IN04) DO /* Prompter ? */
CHGVAR VAR(&CMD) VALUE('?' *CAT &CMD)
CALL PGM(QCACHECK) PARM(&CMD 512) /* Verify CMD */
MONMSG MSGID(CPF6801) EXEC(DO) /* If CMD1, cancel */
GOTO ERROR
ENDDO
MONMSG MSGID(CPF0000) EXEC(DO)
GOTO ERROR
ENDDO
ENDDO
GOTO GETOBJ /* Execute subroutine GETOBJ */
CHKOBJ: CHKOBJ OBJ(&OBJNAME.&LIBNAME) OBJTYPE(&OBJTYPE) +
AUT(*OBJEXIST)
MONMSG MSGID(CPF9801) EXEC(DO)
RCVMSG /* Check prompter Object.Lib names */
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
GOTO CRTOBJ
ENDDO
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
DLTOBJ: IF (&IN11) DO
DLTOBJ OBJ(&OBJNAME.&LIBNAME) TYPE(&OBJTYPE)
ENDDO
ELSE DO /* Object exists, display error msg */
RMVMSG MSGKEY(&MSGKEY)
CHGVAR VAR(&P16) VALUE(&IN16)
CHGVAR VAR(&P04) VALUE(&IN04)
CHGVAR VAR(&PARM) VALUE(&OBJNAME)
CHGVAR VAR(&OBJLIB) VALUE(&LIBNAME)
CHGVAR VAR(&IN85) VALUE('1')
SNDF RCDFMT(PGMMENU)
CHGVAR VAR(&IN83) VALUE('1')
NOTIFY: GOTO MSGCTL
ENDDO
CRTOBJ: /* Create object procedure */
CALL PGM(QCACHECK) PARM(&CMD 512) /* Verify CMD */
MONMSG MSGID(CPF0000) EXEC(DO) /* If Errs cancel */
GOTO ERROR
ENDDO
SECLVL: IF (&IN16) DO /* Second level prompting */
CRTOBJ2: ? SBMJOB JOB(&PARM) JOBD(&JOBD.&JOBDLIB) +
RQSDTA(%SST(&CMD 01 512))
ENDDO
ELSE DO
CRTOBJ1: SBMJOB JOB(&PARM) JOBD(&JOBD.&JOBDLIB) +
RQSDTA(%SST(&CMD 01 512))
ENDDO
GOTO ERROR
ENDDO
OPTION4: IF (&OPTION *EQ 4) +
DO /* Call a program */
CHGVAR VAR(&CMD) VALUE('Option 4: Call - ' *CAT +
&PARM *TCAT '.' *TCAT &OBJLIB)
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
IF (&PARM *EQ &BLANKS) DO
SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) MSGDTA('0000' +
*CAT 'Program name cannot be blank when +
calling a program.') TOPGMQ(*SAME) +
MSGTYPE(*DIAG)
GOTO MENU
ENDDO
IF (&OBJLIB *EQ ' ') DO
CALL PGM(&PARM.*LIBL)
ENDDO
ELSE DO
CALL PGM(&PARM.&OBJLIB)
ENDDO
GOTO ERROR
ENDDO
OPTION5: /* Execute command. */
OPTION6: /* Submit command string. */
IF ((&OPTION *EQ 5) *OR (&OPTION *EQ 6)) DO
CHGVAR VAR(&PROMPT) VALUE('*NO ')
IF (&IN04 *OR (&IN16 *AND &OPTION *EQ 6)) DO
CHGVAR VAR(&PROMPT) VALUE('*YES')
IF (&COMMAND *NE &BLANKS) DO
CHGVAR VAR(&OFFSET1) VALUE(1)
BLANKTUNC: IF (%SST(&COMMAND &OFFSET1 01) *EQ &BLANK) DO
CHGVAR VAR(&OFFSET2) VALUE(&OFFSET1 + 1)
CHGVAR VAR(&LENGTH) VALUE(150 - &OFFSET1)
CHGVAR VAR(&COMMAND) VALUE(%SST(&COMMAND &OFFSET2 +
&LENGTH))
GOTO BLANKTUNC
ENDDO
ENDDO
CHGVAR VAR(&COMMAND) VALUE(' ' *TCAT &COMMAND)
IF (%SST(&COMMAND 01 01) *NE '?') +
CHGVAR VAR(&COMMAND) VALUE('?' *TCAT &COMMAND)
ENDDO
CHGVAR VAR(&CMD) VALUE(&COMMAND) /* Work variable */
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
CALL PGM(QCACHECK) PARM(&CMD 512)
MONMSG MSGID(CPF0000) EXEC(DO)
IF (&OPTION *EQ 6) +
CHGVAR VAR(&IN84) VALUE('1')
IF (&PROMPT *EQ *YES) CHGVAR VAR(&COMMAND) +
VALUE(%SST(&CMD 02 150))
ELSE CHGVAR VAR(&COMMAND) VALUE(%SST(&CMD 01 150))
GOTO ERROR
ENDDO
RMVMSG MSGKEY(&MSGKEY)
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
CHGVAR VAR(&COMMAND) VALUE(%SST(&CMD 1 150))
IF (&OPTION *EQ 5) DO /* Execute command */
CALL PGM(QCAEXEC) PARM(&CMD 512)
ENDDO
ELSE DO /* Submit job */
IF (&PARM *EQ &BLANKS) CHGVAR VAR(&JOBNAME) +
VALUE(&WSID)
ELSE CHGVAR VAR(&JOBNAME) VALUE(&PARM)
IF (&IN16) DO /* Second level prompting */
? SBMJOB JOB(&JOBNAME) JOBD(&JOBD.&JOBDLIB) +
RQSDTA(%SST(&CMD 01 256))
ENDDO
ELSE DO
SBMJOB JOB(&JOBNAME) JOBD(&JOBD.&JOBDLIB) +
RQSDTA(%SST(&CMD 01 256))
ENDDO
ENDDO
GOTO ERROR
ENDDO
OPTION7: IF (&OPTION *EQ 7) +
DSPSBMJOB: DO /* Display submitted jobs */
CHGVAR VAR(&CMD) VALUE('Option 7: Display Submitted +
jobs.')
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
IF (&IN04) DO /* Prompting requested ? */
? DSPSBMJOB
ENDDO
ELSE +
DSPSBMJOB SBMFROM(*JOB)
GOTO MENU
ENDDO
OPTION8: IF (&OPTION *EQ 8) +
EDTSRC: DO /* Source entry utility. */
IF (&TYPE *EQ &BLANKS) CHGVAR VAR(&SRCTYPE) +
VALUE(*SAME) /* Default to TYPE(*SAME) */
ELSE IF (&TYPE *EQ DDS) CHGVAR VAR(&SRCTYPE) +
VALUE(*SAME) /* Default to TYPE(*SAME) */
ELSE IF (&TYPE *EQ ASM) CHGVAR VAR(&SRCTYPE) +
VALUE(*TXT) /* Default to TYPE(*TXT) */
ELSE IF (&TYPE *EQ FMT) CHGVAR VAR(&SRCTYPE) +
VALUE(*TXT) /* Default to TYPE(*TXT) */
ELSE CHGVAR VAR(&SRCTYPE) VALUE('*' *CAT &TYPE)
IF ((&MBRLST *EQ '*NO') *AND (&PARM *EQ ' ')) +
CHGVAR VAR(&PARM) VALUE('*SELECT')
IF ((&PARM *EQ '* ') *OR (&PARM *EQ '?')) +
CHGVAR VAR(&PARM) VALUE('*SELECT')
IF (&TYPE *EQ TXT) DO
CHGVAR VAR(&CMD) VALUE('Option 8: EDTTXT - SrcF:' +
*BCAT &SRCFILE *TCAT '.' *CAT &SRCLIB *BCAT +
'Mbr:' *BCAT &PARM)
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
IF (&PARM *EQ &BLANKS) DO
SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) MSGDTA('0000' +
*CAT 'Src-Mbr name cannot be blank, use an +
asterisk (*) if a member list desired.') +
TOPGMQ(*SAME) MSGTYPE(*DIAG)
GOTO ERROR
ENDDO
/* EDTDOC.QTXT SRCFILE(&SRCFILE.&SRCLIB) DOCUMENT(&PARM) */
ENDDO
ELSE DO
CHGVAR VAR(&CMD) VALUE('Option 8: EDTSRC - SrcF:' +
*BCAT &SRCFILE *TCAT '.' *CAT &SRCLIB *BCAT +
'Mbr:' *BCAT &PARM)
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
IF (&PARM *EQ &BLANKS) DO
SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) MSGDTA('0000' +
*CAT 'Src-Mbr name cannot be blank, use an +
asterisk (*) if a member list desired.') +
TOPGMQ(*SAME) MSGTYPE(*DIAG)
GOTO ERROR
ENDDO
IF (&TEXT *EQ &BLANKS) DO
EDTSRC SRCFILE(&SRCFILE.&SRCLIB) SRCMBR(&PARM) +
TYPE(&SRCTYPE)
ENDDO
ELSE DO
EDTSRC SRCFILE(&SRCFILE.&SRCLIB) SRCMBR(&PARM) +
TYPE(&SRCTYPE) TEXT(&TEXT)
ENDDO
IF (&PARM *EQ '*SELECT') DO
CHGVAR VAR(&PARM) VALUE(&BLANKS)
RCVMSG MSGTYPE(*COMP) RMV(*NO) MSGDTA(&MSGDTA) +
MSGID(&MSGID)
IF (&MSGID *EQ 'EDT0014') +
CHGVAR VAR(&PARM) VALUE(%SST(&MSGDTA 09 10))
ENDDO
ENDDO
GOTO ERROR
ENDDO
OPTION9: IF (&OPTION *EQ 9) DO
/* Screen design aid. */
CHGVAR VAR(&CMD) VALUE('Option 9: Design display +
format - ' *CAT &PARM *TCAT '.' *CAT +
&OBJLIB *BCAT 'JobD - ' *CAT &JOBD *TCAT +
'.' *CAT &JOBDLIB)
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
IF (&PARM *EQ &BLANKS) DO
DSNFMT SRCFILE(&SRCFILE.&SRCLIB) OBJLIB(&OBJLIB) +
JOBD(&JOBD.&JOBDLIB)
ENDDO
ELSE DO
DSNFMT SRCFILE(&SRCFILE.&SRCLIB) SRCMBR(&PARM) +
OBJLIB(&OBJLIB) JOBD(&JOBD.&JOBDLIB)
ENDDO
GOTO MENU
ENDDO
OPTION10: /* NoOp */
OPTION11: IF (&OPTION *EQ 11) DO
/* Copy source file member. */
CHGVAR VAR(&CMD) VALUE('Option 11: CopyFile - ' *CAT +
&SRCFILE *TCAT '.' *CAT &SRCLIB *BCAT 'Mbr +
- ' *CAT &PARM *BCAT 'ToFile - ' *CAT &PARM)
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
RTVMSG MSGID(PGM2011) MSGF(PGMMSGF) MSGDTA(&PARM +
*CAT &SRCFILE *CAT &SRCLIB *CAT &PARM2) +
MSG(&CMD)
IF (&IN04) CHGVAR VAR(&CMD) VALUE('?' *CAT &CMD)
CALL QCaCheck PARM(&CMD 512)
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
CALL QCAEXEC PARM(&CMD 512)
GOTO MENU
ENDDO
OPTION12: /* NoOp */
OPTION13: /* NoOp */
OPTION14: /* NoOp */
OPTION15: IF (&OPTION *EQ 15) DO
/* Add library list entry. */
CHGVAR VAR(&CMD) VALUE('Option 15: AddLibLE - ' *CAT +
&PARM *BCAT 'Position - ' *CAT &PARM2)
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
IF (&PARM *NE &BLANKS) DO
IF (&PARM2 *EQ *LAST) +
ADDLIBLE LIB(&PARM) POSITION(*LAST)
ELSE +
ADDLIBLE LIB(&PARM)
ENDDO
GOTO ERROR
ENDDO
OPTION16: /* NoOp */
OPTION17: /* NoOp */
OPTION18: /* NoOp */
OPTION19: IF (&OPTION *EQ 19) DO
/* Design Advanced printer function */
CHGVAR VAR(&CMD) VALUE('Option 19: DSNAPF - +
Design Advanced Printer Function. APF menu +
requested.')
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
CALL QCAEXEC PARM('DSNAPF' 6)
GOTO MENU
ENDDO
OPTION20: /* NoOp */
OPTION80: IF (&OPTION *EQ 80) DO
CHGVAR VAR(&CMD) VALUE('Option 80: DSPMNU - Display +
CPF command menu. Sub-menu ' *CAT &PARM +
*BCAT 'requested.')
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
IF ((&PARM *EQ 'CMDGRP') *OR (&PARM *EQ 'VERB') +
*OR (&PARM *EQ 'SUBJECT')) DO
? DSPMNU MENU(&PARM)
ENDDO
ELSE DO
? DSPMNU
ENDDO
GOTO MENU
ENDDO
OPTION90: IF (&OPTION *EQ 90) +
DO
IF COND((&PARM *NE '*NOLIST') *OR (&PARM *NE +
'*LIST')) THEN(CHGVAR VAR(&PARM) +
VALUE(&SIGNOFF))
CHGVAR VAR(&CMD) VALUE('Option 90: SignOff the +
CL-Programmer Menu. Option - ' *CAT &PARM)
SNDPGMMSG MSG(&CMD) TOPGMQ(*SAME) MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*SAME) MSGTYPE(*RQS) MSGKEY(&MSGKEY) +
RMV(*NO)
SIGNOFF LOG(&PARM)
GOTO ERROR
ENDDO
GOTO MENU
RETURN
/* BEGSR */
HELPTEXT: /* Help text routine(s) begin here */
HELPTEXT1: SNDRCVF RCDFMT(HELPTEXT1)
IF (*NOT &IN26) GOTO ROLL
HELPTEXT2: SNDRCVF RCDFMT(HELPTEXT2)
IF (&IN27) GOTO HELPTEXT
IF (*NOT &IN26) GOTO ROLL
HELPTEXT3: SNDRCVF RCDFMT(HELPTEXT3)
IF (&IN27) GOTO HELPTEXT1
IF (*NOT &IN26) GOTO ROLL
HELPTEXT4: SNDRCVF RCDFMT(HELPTEXT4)
IF (&IN27) GOTO HELPTEXT2
IF (*NOT &IN26) GOTO ROLL
HELPTEXT5: SNDRCVF RCDFMT(HELPTEXT5)
IF (&IN27) GOTO HELPTEXT3
IF (*NOT &IN26) GOTO ROLL
GOTO HELPTEXT
/* ENDSR */
/* BEGSR */
/* Get user's menu defaults. */
GETDFT: /* Set up menu defaults */
RTVDTAARA DTAARA(%SST(&USROPT 01 10).%SST(&USROPT 11 +
10)) RTNVAR(&MNUDFT)
MONMSG MSGID(CPF1015) EXEC(DO)
SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) MSGDTA('0000' +
*CAT 'No defaults found for user ' *CAT +
%SST(&USROPT 01 10) *TCAT '.' *CAT +
%SST(&USROPT 11 10)) TOPGMQ(*SAME) +
MSGTYPE(*DIAG)
GOTO ROLL
ENDDO
RTVUSRDFT: /* Retrieve the user's menu defaults */
DLTDTAARA DTAARA(PGMDFT.QTEMP)
MONMSG MSGID(CPF0000)
CRTDTAARA DTAARA(PGMDFT.QTEMP) TYPE(*CHAR) LEN(2000) +
VALUE(&MNUDFT) TEXT('Current user''s user +
defaults.')
CALL PGM(CRC1233) +
PARM(&XSRCFILE +
&XSRCLIB +
&XOBJLIB +
&JOBD +
&JOBDLIB +
&XLOG +
&SIGNOFF +
&LOGCLPGM +
&ALWRTVSRC +
&USRPRF +
&PUBAUT +
&RSTDSP +
&DFRWRT +
&SIZE1 +
&SIZE2 +
&SIZE3 +
&MAXRCD +
&PRTSCH +
&BLINK +
&RSTLBL +
&LIBL +
&MBRLST +
&DFTYPE +
&SHARE +
&OPTIMIZE)
DLTDTAARA DTAARA(PGMDFT.QTEMP)
CHGVAR VAR(&XJOBD) VALUE(&JOBD *CAT &JOBDLIB) /* Set +
default job description */
IF (&BLINK *EQ *YES) CHGVAR VAR(&IN71) VALUE('1')
ELSE CHGVAR VAR(&IN71) VALUE('0')
IF (&LIBL *NE ' ') DO
CHGVAR &CMD VALUE('RPLLIBL (' *CAT &LIBL *BCAT ')')
CALL QCAEXEC PARM(&CMD 512)
RCVMSG
CHGVAR VAR(&CMD) VALUE(&BLANKS)
ENDDO
GOTO SNDRQSMSG
/* ENDSR */
GOTO ROLL
/* BEGSR */
ERROR: /* Error trapping routine. */
CHGVAR VAR(&CNT) VALUE(&CNT + 1)
IF (&CNT *GT 10) DO
SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) MSGDTA('0000' +
*CAT 'Program message generation looped +
more than 10 times. Cancel.') MSGTYPE(*DIAG)
RETURN
ENDDO
GOTO HEADING
/* ENDSR */
/* BEGSR */
/* Get object.library name after prompter called. */
GETOBJ: CHGVAR VAR(&CNT1) VALUE(1)
CHGVAR VAR(&NOLIB) VALUE('0')
CHGVAR VAR(&TWICE) VALUE('0')
DOLOOP: IF (%SST(&CMD &CNT1 1) *EQ '(') +
DO
CHGVAR VAR(&CNT1) VALUE(&CNT1 + 1)
DOAGAIN: CHGVAR VAR(&WORKOBJ) VALUE(%SST(&CMD &CNT1 11))
CHGVAR VAR(&CNT2) VALUE(1)
DO10: IF ((%SST(&WORKOBJ &CNT2 1) *EQ '.') +
*OR (%SST(&WORKOBJ &CNT2 1) *EQ ')')) +
DO
IF ((%SST(&WORKOBJ &CNT2 1) *EQ ')') +
*AND (*NOT &TWICE)) DO
CHGVAR VAR(&LIBNAME) VALUE('QGPL')
CHGVAR VAR(&NOLIB) VALUE('1')
ENDDO
CHGVAR VAR(&CNT3) VALUE((10 - &CNT2) + 2)
CHGVAR VAR(%SST(&WORKOBJ &CNT2 &CNT3)) VALUE(' ')
DO20: IF (&TWICE) DO /* PC/2 */
CHGVAR VAR(&LIBNAME) VALUE(%SST(&WORKOBJ 1 10))
ENDDO20: ENDDO
DO30: ELSE DO
CHGVAR VAR(&OBJNAME) VALUE(%SST(&WORKOBJ 1 10))
IF (&NOLIB) GOTO ENDGETOBJ
CHGVAR VAR(&CNT1) VALUE(&CNT1 + &CNT2)
CHGVAR VAR(&TWICE) VALUE('1')
GOTO DOAGAIN
ENDDO30: ENDDO
ENDDO10: ENDDO
DO50: ELSE DO
CHGVAR VAR(&CNT2) VALUE(&CNT2 + 1)
IF (&CNT2 *LE 11) GOTO DO10
ENDDO50: ENDDO
ENDDOLOOP: ENDDO
DO60: ELSE DO
CHGVAR VAR(&CNT1) VALUE(&CNT1 + 1)
IF (&CNT1 *LT 512) GOTO DOLOOP
ENDDO60: ENDDO
ENDGETOBJ: GOTO CHKOBJ
/* ENDSR */
ENDPGM